package com.xingyun.kingdee.erp.common.model.param.opt;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.xingyun.kingdee.erp.common.model.param.base.ErpStandardParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * <p>Title: erp下推服务接口请求参数</p>
 * <p>Description: </p>
 *
 * @author zhangxiong
 * @date 2020年04月10日
 */
@ApiModel(value = "表单下推参数")
@Setter
@Getter
@ToString
public class ErpPushDownParam extends ErpStandardParam {

    /**
     * 单据编码集合 格式：[No1,No2,...]
     */
    @ApiModelProperty(value = "单据编码集合，数组类型，格式：[No1,No2,...]（使用编码时必填）")
    private List<String> numbers;

    /**
     * 单据内码集合 格式："Id1,Id2,..."
     */
    @ApiModelProperty(value = "单据内码集合，字符串类型，格式：Id1,Id2,...（使用内码时必填）")
    private String ids;

    /**
     * 分录内码集合，逗号分隔（分录下推时必录）注（按分录下推时，单据内码和编码不需要填,否则按整单下推）
     */
    @ApiModelProperty(value = "分录内码集合，逗号分隔（分录下推时必录）注（按分录下推时，单据内码和编码不需要填,否则按整单下推）")
    private String entryIds;

    /**
     * 转换规则内码，字符串类型（未启用默认转换规则时，则必录）
     */
    @ApiModelProperty(value = "转换规则内码，字符串类型（未启用默认转换规则时，则必录）")
    private String ruleId;

    /**
     * 目标单据类型内码，字符串类型（非必录）
     */
    @ApiModelProperty(value = "目标单据类型内码，字符串类型（非必录）")
    private String targetBillTypeId;

    /**
     * 目标组织内码，整型（非必录）
     */
    @ApiModelProperty(value = "目标组织内码，整型（非必录）")
    private Integer targetOrgId;

    /**
     * 目标单据FormId，字符串类型，（启用默认转换规则时，则必录）
     */
    @ApiModelProperty(value = "目标单据FormId，字符串类型，（启用默认转换规则时，则必录）")
    private String targetFormId;

    /**
     * 是否启用默认转换规则，布尔类型，默认false（非必录）
     */
    @ApiModelProperty(value = "是否启用默认转换规则，布尔类型，默认false（非必录）")
    private Boolean isEnableDefaultRule;

    /**
     * 保存失败时是否暂存，布尔类型，默认false（非必录）  注（暂存的单据是没有编码的）
     */
    @ApiModelProperty(value = "保存失败时是否暂存，布尔类型，默认false（非必录）  注（暂存的单据是没有编码的）")
    private Boolean isDraftWhenSaveFail;

    /**
     * 注（传到转换插件的操作选项中，平台不会解析里面的值）
     */
    @ApiModelProperty(value = "自定义参数，字典类型，格式：\"{key1:value1,key2:value2,...}\"（非必录）")
    private JSONObject customParams;
}
